package aopbyxml;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;

@Aspect     //必须使用这个注释，才能够扫描到
public class AdditionCar {

    //新增一个方法，并且使用 @PointCut 来申明切入点
    @Pointcut("execution(* aopbyxml.NormalCar.*(..))")
    private void testPoint() {
    }

    @Before("testPoint()")  //指定这个增强作用于哪一个已经使用 @PointCut 申明过切入点的方法。
    public void before() {
        System.out.println("Wu wu wu....");
    }

    @After("testPoint()")
    public void after() {
        System.out.println("Skr......");
    }

    @Around("testPoint()")
    public void around(ProceedingJoinPoint point) throws Throwable {
        System.out.println("Coming , girl...");
        point.proceed();
        System.out.println("hey, what's your name");
    }

    @AfterThrowing("testPoint()")
    public void execp() {
        System.out.println("Wocao !!!");
    }

    @AfterReturning("testPoint()")
    public void goHome() {
        System.out.println("6 le 6 le...");
    }

}
